﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RN.Entidades;
using CAD.DAO;
using System.Data;

namespace RN.Componentes
{
    public class CActivos
    {

        #region DMLS
        public static bool Insertar(Activos objProxy)
        {
            ValidationException x = new ValidationException();
            if (string.IsNullOrEmpty(objProxy.ICODIGOBARRAS1))
                x.AgregarError("El Activo Ya Existe");

            if (x.Cantidad > 0)
                throw x;

            DAOActivos daoProxy = new DAOActivos();
            return daoProxy.Insertar(objProxy.ICODIGOBARRAS1, objProxy.SDESCIPCION_DSC1, objProxy.SPROPIEDAD1, objProxy.DTFECHACOMPRA_DT1, objProxy.DTFECHADEALTA_DT1, objProxy.IVIDAUTIL1, objProxy.SESTADO1, objProxy.SMARCA1, objProxy.SMODELO1,objProxy.SFORMA1, objProxy.SSERIAL1, objProxy.SCOLOR1, objProxy.SCAPACIDAD1, objProxy.SMATERIAL1, objProxy.SALTO1,objProxy.SLARGO1, objProxy.SANCHO1,objProxy.IDIAMETRO1,objProxy.INUMERODEDIVICIONES1,objProxy.STIPODEASIGANCION1,objProxy.STIPODEALTA1,objProxy.NUMERODECOMPROVANTE1,objProxy.REPORTADOALSEGURO1, objProxy.IVALOR1, objProxy.ICONCURRENCIA1, objProxy.LFAMILIAS_ID1.LFAMILIA_ID1,objProxy.LPROVEEDORE_ID1.LPROVEEDOR1, objProxy.LPERSONAL_ID1.LPERSONAL_ID1)>0;
        }
        public static bool ActualizarActivo(Activos objProxy)
        {
            ValidationException x = new ValidationException();
            if (objProxy.LACTIVOS_ID1 <= 0)
                x.AgregarError("Ingrese el código");

            if (string.IsNullOrEmpty(objProxy.ICODIGOBARRAS1))
                x.AgregarError("No Existe El Codigo De Barra");

            if (x.Cantidad > 0)
                throw x;

            DAOActivos daoProxy = new DAOActivos();
            return daoProxy.Actualizar(objProxy.LACTIVOS_ID1, objProxy.ICODIGOBARRAS1, objProxy.SDESCIPCION_DSC1, objProxy.SPROPIEDAD1, objProxy.DTFECHACOMPRA_DT1, objProxy.DTFECHADEALTA_DT1, objProxy.IVIDAUTIL1, objProxy.SESTADO1, objProxy.SMARCA1, objProxy.SMODELO1, objProxy.SFORMA1, objProxy.SSERIAL1, objProxy.SCOLOR1, objProxy.SCAPACIDAD1, objProxy.SMATERIAL1, objProxy.SALTO1, objProxy.SLARGO1, objProxy.SANCHO1, objProxy.IDIAMETRO1, objProxy.INUMERODEDIVICIONES1, objProxy.STIPODEASIGANCION1, objProxy.STIPODEALTA1, objProxy.NUMERODECOMPROVANTE1, objProxy.REPORTADOALSEGURO1, objProxy.DTFECHABAJA_DT1, objProxy.SMOTIVOBAJA1, objProxy.IVALOR1, objProxy.ICONCURRENCIA1, objProxy.LFAMILIAS_ID1.LFAMILIA_ID1, objProxy.LPROVEEDORE_ID1.LPROVEEDOR1, objProxy.LPUNTOS1.LPUNTOS_ID1, objProxy.LPERSONAL_ID1.LPERSONAL_ID1);

        }
        public static bool EliminarActivo(int LACTIVOS_ID)
        {
            ValidationException x = new ValidationException();
            if (LACTIVOS_ID <= 0)
                x.AgregarError("Ingrese el código");

            if (x.Cantidad > 0)
                throw x;

            DAOActivos daoProxy = new DAOActivos();
            return daoProxy.Eliminar(LACTIVOS_ID);
        }
        public static Activos TraerUltimoCreado()
        {
            DAOActivos daoProxy = new DAOActivos();
            DataSet dtsProxy = daoProxy.TraerUltimoCreado();
            return CargarUltimoCreado(dtsProxy.Tables[0].Rows[0]);
        }
        #endregion

        #region Selects
        public static List<Activos> TraerACTIVO()
        {
            DAOActivos daoProxy = new DAOActivos();
            DataSet dtsProxy = daoProxy.TraerACTIVO();
            return CargarLista(dtsProxy.Tables[0]);
        }
        public static Activos TraerACTIVOXId(int LACTIVOS_ID)
        {
            DAOActivos daoProxy = new DAOActivos();
            DataSet dtsProxy = daoProxy.TraerACTIVOXId(LACTIVOS_ID);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        public static Activos TraerACTIVOXCODIGOBARRA(string ICODIGOBARRAS)
        {
            DAOActivos daoProxy = new DAOActivos();
            DataSet dtsProxy = daoProxy.TraerACTIVOXCODIGOBARRA(ICODIGOBARRAS);


            return Cargar(dtsProxy.Tables[0].Rows[0]);
        }
        #endregion

        #region Metodos Privados
        private static List<Activos> CargarLista(DataTable tabla)
        {
            List<Activos> lstProxy = new List<Activos>();

            foreach (DataRow fila in tabla.Rows)
            {
                lstProxy.Add(Cargar(fila));
            }
            return lstProxy;
        }
        private static Activos CargarUltimoCreado(DataRow fila)
        {
            Activos objProxy = new Activos();
            objProxy.LACTIVOS_ID1 = Convert.ToInt32(fila["ULTIMO"]);
            return objProxy;
        }
        private static Activos Cargar(DataRow fila)
        {
            Activos objProxy = new Activos();
            objProxy.LACTIVOS_ID1 = Convert.ToInt32(fila["LACTIVOS_ID"]);
            objProxy.ICODIGOBARRAS1 = fila["ICODIGOBARRAS"].ToString();
            objProxy.SDESCIPCION_DSC1 = fila["SDESCIPCION_DSC"].ToString();
            objProxy.SPROPIEDAD1 = fila["SPROPIEDAD"].ToString();
            objProxy.DTFECHACOMPRA_DT1 = Convert.ToDateTime(fila["DTFECHADECOMPRA_DT"]);
            objProxy.DTFECHADEALTA_DT1 = Convert.ToDateTime(fila["DTFECHADEALTA_DT"]);
            objProxy.IVIDAUTIL1 = Convert.ToInt32(fila["IVIDAUTIL"]);
            objProxy.SESTADO1 = fila["SESTADO"].ToString();
            objProxy.SMARCA1 = fila["SMARCA"].ToString();
            objProxy.SMODELO1 = fila["SMODELO"].ToString();
            objProxy.SFORMA1 = fila["SFORMA"].ToString();
            objProxy.SSERIAL1 = fila["SSERIAL"].ToString();
            objProxy.SCOLOR1 = fila["SCOLOR"].ToString();
            objProxy.SCAPACIDAD1 = fila["SCAPACIDAD"].ToString();
            objProxy.SMATERIAL1 = fila["SMATERIAL"].ToString();
            objProxy.SALTO1 = fila["SALTO"].ToString();
            objProxy.SLARGO1 = fila["SLARGO"].ToString();
            objProxy.SANCHO1 = fila["SANCHO"].ToString();
            objProxy.IDIAMETRO1 = Convert.ToInt32(fila["IDIAMETRO"]);
            objProxy.INUMERODEDIVICIONES1 = Convert.ToInt32(fila["INUMERODEDIVICIONES"]);
            objProxy.STIPODEASIGANCION1 = fila["STIPOASIGNACION"].ToString();
            objProxy.STIPODEALTA1 = fila["STIPODEALTA"].ToString();
            objProxy.NUMERODECOMPROVANTE1 = Convert.ToInt32(fila["INUMEROCOMPROBANTE"]);
            objProxy.REPORTADOALSEGURO1 = fila["SREPORTADOALSEGURO"].ToString();
          //  objProxy.DTFECHABAJA_DT1 = Convert.ToDateTime(fila["DTFECHABAJA"]);
           // objProxy.SMOTIVOBAJA1 = fila["SMOTIVOBAJA "].ToString();
            objProxy.IVALOR1 = Convert.ToDouble(fila["IVALOR"]);
            objProxy.ICONCURRENCIA1 = Convert.ToInt32(fila["ICONCURRENCIA"]);
            objProxy.LFAMILIAS_ID1.LFAMILIA_ID1 = Convert.ToInt32(fila["LFAMILIAS_ID"]);
            objProxy.LPROVEEDORE_ID1.LPROVEEDOR1 = Convert.ToInt32(fila["LPROVEEDOR_ID"]);
      //      objProxy.LPUNTOS1.LPUNTOS_ID1 = Convert.ToInt32(fila["LPUNTOS_ID"]);
            objProxy.LPERSONAL_ID1.LPERSONAL_ID1 = Convert.ToInt32(fila["LPERSONAL_ID"]);

            return objProxy;
        }
        #endregion
    }
}
